<?php
if($_POST)
{
	// ¡¡Validar que el valor recibido sea valido!!
	muestra_forms($_POST["listado"], $_POST["listado"]);
}
else muestra_forms(1, NULL);

function genera_listado($seleccionado)
{
	$listado=array("Selecciona", "Elemento 1", "Elemento 2", "Elemento 3");

	for($x=1; $x<=3; $x++)
	{
		$y=$x+1;
		if($seleccionado==$y)
			echo "<option selected value='".$y."'>".$listado[$x]."</option><br />";
		else
			echo "<option value='".$y."'>".$listado[$x]."</option><br />";
	}
}

function genera_listado2($listado2)
{
	switch($listado2)
	{
		case 2: echo "<option value='1'>A Sub 1</option><br />"; echo "<option value='2'>A Sub 2</option><br />"; break;
		case 3: echo "<option value='3'>B Sub 1</option><br />"; break;
		case 4: echo "<option value='1'>C Sub 1</option><br />"; break;
	}
}

function muestra_forms($seleccionado, $arma_listado)
{
?>



<FORM METHOD="POST" NAME="form" ACTION="prueba.php">
	<select name="listado" onChange="document.form.submit();">
	<?php genera_listado($seleccionado); ?>
	</select>


	<?php if($arma_listado!=NULL) { ?>
	<select name="listado2">
	<?php genera_listado2($arma_listado); ?>
	</select>
<?php } ?>
</FORM>
<?php } ?>